<?php
namespace app\newapi\controller;

use think\Controller;
use think\Cache;
use Aliyun\DySDKLite\Sms\SmsApi;
use think\Db;

class Sms extends Controller
{
    // 调用发送短信接口 get mobile/15521288734
    public function getcode($mobile){
        $pattern = "/^1[34578]\d{9}$/";
        preg_match($pattern,$mobile,$matches);
        if(!empty($matches)){
            $rand = rand(100000,999999);
            $code_data = $mobile.','.$rand;
            $response = [
                'sign' =>    "广州尚凝文化发展有限公司", // 短信签名
                'signnum' =>          "SMS_117300551", // 短信模板编号
                'mobile' =>           $mobile, // 短信接收者
                "code"=>    $rand,
                'lost_time' => time() + 3000
            ];
            $result = Db::name('sms')->insert($response);
            if($result){
                Cache::inc('code_data');
                Cache::set('code_data',$code_data,3000);
                $Access_Key_ID = "LTAIKqa4XUOwajiT";
                $Access_Key_Secret = "7ycL9N1EJ5MdcF9FdT0jzepj5rgZ3d";
                $sms = new SmsApi($Access_Key_ID,$Access_Key_Secret); // 请参阅 https://ak-console.aliyun.com/ 获取AK信息
                $response = $sms->sendSms(
                    "广州尚凝文化发展有限公司", // 短信签名
                    "SMS_117300551", // 短信模板编号
                    $mobile, // 短信接收者
                    Array (  // 短信模板中字段的值
                        "code"=>$rand,
                    )
                );
                return json(['code' => 0 , 'msg' => $result,'data'=>$response]);
            }else {
                return json(['code' => 404 , 'msg' => '验证码发送失败','data'=>$response]);
            }
            // echo "发送短信(sendSms)接口返回的结果:\n";
            // print_r($response);
        }else{
            return json(['code' => -1 , 'error' => 'mobile num wrong']);
        }
    }

    public function getcheck($mobile=0,$code=0) {
        if($code){
            if($mobile){
                $has_mobile = Db::name('sms')->where('mobile',$mobile)->order('id DESC')->limit(1)->select();
                if($has_mobile){
//                     var_dump($has_mobile);
                    $time_out = $has_mobile[0]['lost_time'];
//                     var_dump($has_mobile[0]['lost_time']);
                    if($time_out > time()){
                        //校验验证码是否正确
                        if($has_mobile[0]['code'] == $code){
                            return json(['status' => 1 ,'msg' => '还在有效期内 + 验证码正确', 'code' => $code,'has_mobile'=>$has_mobile]);
                        }else {
                            return json(['status' => 101 ,'msg' => '还在有效期内+ 验证码错误', 'code' => $code,'has_mobile'=>$has_mobile]);
                        }
                    }else {
                        return json(['status' => 203 ,'msg' => '验证码已经失效', 'data' => $time_out]);
                    }

                }else {
                    return json(['status' => 202 , 'error' => '手机号尚未发送验证码']);
                }
            }else {
                return json(['status' => 201 , 'error' => '手机号不存在']);
            }
        }else {
            return json(['status' => -1 , 'error' => '验证码不存在']);
        }
    }

    //  调用发送短信接口 get mobile/15521288734
    public function getcode2($mobile){
        $pattern = "/^1[34578]\d{9}$/";
        preg_match($pattern,$mobile,$matches);
        if(!empty($matches)){
            $rand = rand(100000,999999);
            $code_data = $mobile.','.$rand;
            Cache::inc('code_data');
            Cache::set('code_data',$code_data,3000);
            $Access_Key_ID = "LTAIKqa4XUOwajiT";
            $Access_Key_Secret = "7ycL9N1EJ5MdcF9FdT0jzepj5rgZ3d";
            $sms = new SmsApi($Access_Key_ID,$Access_Key_Secret); // 请参阅 https://ak-console.aliyun.com/ 获取AK信息
            $response = $sms->sendSms(
                "广州尚凝文化发展有限公司", // 短信签名
                "SMS_117300551", // 短信模板编号
                $mobile, // 短信接收者
                Array (  // 短信模板中字段的值
                    "code"=>$rand,
                )
            // "123"   // 流水号,选填
            );
            // echo "发送短信(sendSms)接口返回的结果:\n";
            // print_r($response);

            return json(['code' => 0 , 'msg' => 'ok']);
        }else{
            return json(['code' => -1 , 'error' => 'mobile num wrong']);
        }
    }



    // 直接发送code 123456  测试
    public function sendmsg(){
        $Access_Key_ID = "LTAIKqa4XUOwajiT";
        $Access_Key_Secret = "7ycL9N1EJ5MdcF9FdT0jzepj5rgZ3d";
        $sms = new SmsApi($Access_Key_ID,$Access_Key_Secret); // 请参阅 https://ak-console.aliyun.com/ 获取AK信息
        $response = $sms->sendSms(
            "广州尚凝文化发展有限公司", // 短信签名
            "SMS_117300551", // 短信模板编号
            "15521288734", // 短信接收者
            Array (  // 短信模板中字段的值
                "code"=>"123456",
            )
        // "123"   // 流水号,选填
        );
        echo "发送短信(sendSms)接口返回的结果:\n";
        print_r($response);
    }

    // 域名被封的通知    SMS_113445232
    public function urlNotice($name,$pid){
        $Access_Key_ID = "LTAIKqa4XUOwajiT";
        $Access_Key_Secret = "7ycL9N1EJ5MdcF9FdT0jzepj5rgZ3d";
        $sms = new SmsApi($Access_Key_ID,$Access_Key_Secret);
        // 获取服务器里面的手机号依次发送 先给管理员发送短信 pid = 0 , 然后给对应的pid发送
        $map = [
            'type' => 2,
            'pid'  => 0
        ];
        $phones = Db::name('wxurlnotice')->where($map)->column('notice');
        foreach ($phones as $phone) {
            $response = $sms->sendSms(
                "广州尚凝文化发展有限公司", // 短信签名
                "SMS_113445232", // 短信模板编号
                $phone, // 短信接收者
                Array (  // 短信模板中字段的值
                    "str"=>$name,
                )
            );
        }
        // 给对应的负责人发送短信提醒
        if($pid){
            $map['pid'] = $pid;
            $phones = Db::name('wxurlnotice')->where($map)->column('notice');
            if($phones){
                foreach ($phones as $phone) {
                    $response = $sms->sendSms(
                        "广州尚凝文化发展有限公司", // 短信签名
                        "SMS_113445232", // 短信模板编号
                        $phone, // 短信接收者
                        Array (  // 短信模板中字段的值
                            "str"=>$name,
                        )
                    );
                }
            }
        }
    }

    public function urlNoticeOnly($name){
        $Access_Key_ID = "LTAIKqa4XUOwajiT";
        $Access_Key_Secret = "7ycL9N1EJ5MdcF9FdT0jzepj5rgZ3d";
        $sms = new SmsApi($Access_Key_ID,$Access_Key_Secret); // 请参阅 https://ak-console.aliyun.com/ 获取AK信息
        $response = $sms->sendSms(
            "广州尚凝文化发展有限公司", // 短信签名
            "SMS_113445232", // 短信模板编号
            '15521288734', // 短信接收者
            Array (  // 短信模板中字段的值
                "str"=>$name,
            )
        );
        echo "发送短信(sendSms)接口返回的结果:\n";
        print_r($response);
    }

    // 发货成功通知
    public function orderTip($mobile=0,$name=''){
        if($mobile){
            if(empty($name)){
                $name = '订单页面';
            }
            $Access_Key_ID = "LTAIKqa4XUOwajiT";
            $Access_Key_Secret = "7ycL9N1EJ5MdcF9FdT0jzepj5rgZ3d";
            $sms = new SmsApi($Access_Key_ID,$Access_Key_Secret); // 请参阅 https://ak-console.aliyun.com/ 获取AK信息
            $response = $sms->sendSms(
                "广州尚凝文化发展有限公司", // 短信签名
                "SMS_160301871", // 订单短信模板编号
                $mobile, // 短信接收者
                Array (  // 短信模板中字段的值
                    "name"=>$name
                )
            );
            echo "发送短信(sendSms)接口返回的结果:\n";
            print_r($response);
        }else{
            return json('非法请求');
        }
    }

}
